Fullstack Job: Full Stack Developer

Job added on

Company

CMC Markets

Location

London, England - United Kingdom

Job type

Full-Time

Fullstack Job Details

What is CMC Invest?
CMC Invest is a greenfield retail investment app created by product designers and engineers in-house at CMC. It has launched in its first incarnation to a small number of customers, but this is just the beginning. As our product evolves we aim to empower every customer to achieve financial wellness.
Why do we need Fullstack Developers?
Our application is made up of frontends, backends and infrastructure. We believe that if we have engineers who are capable of working on all three then the end result is a much more cohesive application that is easier to evolve and maintain over time. We encourage all of our developers to get involved in all aspects even if they've only ever worked on one of them in the past.
We don't want to put people into boxes and limit their ambition or creativity, our goal for our engineers is to help them towards reaching their potential. We believe we can do this by providing the freedom to try new things, learn new skills (from formal training and collaboration) and get things wrong a few times before getting them right (without upsetting our customers!).
We have a sack full of ambition and a backlog full of ideas to make our vision of empowering customers to financial wellness a reality. We also have the desire to make the engineering team a great place to work; where people are encouraged to use their skills and experience and to work together to create something incredible.
Below is what you can expect from working in the CMC Invest engineering team in various areas.
Frontend
Whilst our application is mainly delivered through native iOS and Android apps a lot of our functionality is built using browser based frontends that are viewed via these applications. We also need to make frontends for administration functionality.
Our frontend developers are responsible for creating and maintaining all of these types of frontend, ensuring that our application remains consistent across different functions and devices.
Fundamentally our frontends represent the tip of the iceberg that our users interact with, it is the forefront of where we seek to be better than our competitors, but it's only successful if it works perfectly with our backend...
Backend
At the heart of the CMC Invest applications is our API, built on AWS using as much of AWS's broad range of technology as we need to deliver the experience our customers require. Our APIs are built to agreed contracts for both the applications that consume it and the downstream systems which it utilises.
Our modular approach to architecture and fail fast philosophy allow us to spin up new APIs very quickly to test out new ideas or new technology. By using feature flags we can test out these new APIs in production to see if they bring the benefit we expect. If they do, great, we make them even better. If they don't, no problem. We tear it all down, document our learnings and move on to the next idea.
Fundamentally our backend engineering turns our prototypes into reality, taking (sometimes ambitious) requirements and turning them into real working functionality.
Infrastructure
The vision for our development lifecycle is to create an environment where engineers are empowered to build investment functionality that our users desire with the least amount of technical barriers as possible. Creating desirable functionality requires the ability to very quickly iterate over ideas and feedback from users. Our infrastructure and tools facilitate this by providing easily repeatable patterns, templates and workflows that can be used without requiring hours of training.
This means that all our developers can create and maintain infrastructure without needing hours of AWS and Terraform training. With minimal effort we can add new systems, endpoints or databases into production in minutes.
What do we expect from a Fullstack Engineer?
On a daily basis, you will:
  • Build web based frontend features for our mobile applications
  • Design and code components and add them to our component library
  • Build APIs that are deployed into AWS which meet agreed interface contracts
  • Review system designs and prototypes and work with frontend and downstream developers to create API contracts
  • Evaluate new technologies that can be used to provide better customer value and experience
  • Constantly monitor and improve APIs, fixing issues as soon as possible
  • Provide a high-standard of documentation to enable knowledge sharing
  • Have the opportunity to demonstrate the work you have done to technical and non-technical stakeholders
  • Help to refine customer journeys and requirements for new features
  • Work with product and design to create high-fidelity prototypes of potential new functionality
  • Manage your own work, keeping boards up to date and attending standups
Key Skills & Experience
We are looking for someone that can demonstrate:
  • Hands-on frontend development and delivery experience over a mix of languages and technologies.
  • You’re familiar with product and design lifecycles, and collaborating closely with designers, engineers, and product managers
  • Experience with using backend APIs and optimising front end performance
  • Experience contributing and working with shared code libraries
  • Passion for helping users succeed in their goals through the features you build
  • Strong communication skills and an ability to take ownership of tasks and gather requirements
  • Ability to solve complex coding challenges around performance and reusability while continuously improving code quality with a TDD approach
  • An interest in learning new skills and collaborating on new technologies
  • Source code and application versioning
  • Tech stack includes: TypeScript/JavaScript, Jest, AWS (Lambda, DynamoDB, S3, etc...), GitHub
Useful Skills or Interests
Any of these are a bonus, but not necessary to start the role as you'll pick it up as you go.
  • Native app development; Android or iOS
  • Infrastructure as code (Terraform)
  • Trunk based development
  • Open Source contributions
  • Financial Services (or another regulated industry) experience